package com.example.blog.service;

import com.example.blog.dto.SystemLogDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.time.LocalDateTime;
import java.util.Map;

public interface SystemLogService {
    SystemLogDTO createLog(SystemLogDTO logDTO);
    SystemLogDTO getLogById(Long id);
    Page<SystemLogDTO> getAllLogs(Map<String, String> filters, Pageable pageable);
    Page<SystemLogDTO> getLogsByType(String type, Pageable pageable);
    Page<SystemLogDTO> getLogsByLevel(String level, Pageable pageable);
    Page<SystemLogDTO> getLogsByModule(String module, Pageable pageable);
    Page<SystemLogDTO> getLogsByUser(Long userId, Pageable pageable);
    Page<SystemLogDTO> getLogsByDateRange(LocalDateTime start, LocalDateTime end, Pageable pageable);
    void cleanupOldLogs(int days);
    Map<String, Long> getLogStats();
} 